#pragma once

class TrackerView;

class BaseView
{
public:
	BaseView(TrackerView* view);
	~BaseView(void);
	
	void reshape( int cx, int cy );

	void reset();

	inline void setVisible( bool visible ) { _visible = visible; }
	inline bool isVisible() { return _visible; }

	inline void setMaximized( bool maximized ) { _maximized = maximized; }
	inline bool isMaximized() { return _maximized; }

	virtual void invalidate();

	virtual void render() = 0;

	inline int getRectWidth() { return _rectWidth; }
	inline int getRectHeight() { return _rectHeight; }

	inline bool isValid() { return _valid; }
	inline void setValid() { _valid = true; }

	inline TrackerView* getParent() { return _parent; }

private:
	TrackerView* _parent;

	int _rectWidth;
	int _rectHeight;

	bool _visible;
	bool _maximized;

	bool _valid;

};

